SQL UNIQUE Constraint

अद्वितीय नियंत्रण के बारे में जानें और इसका उपयोग करना सीखें

SQL UNIQUE Constraint क्या हैं?

UNIQUE बाधा यह सुनिश्चित करती है कि किसी कॉलम में सभी मान अद्वितीय हैं।

अद्वितीय और प्राथमिक दोनों कुंजी बाधाएँ किसी स्तंभ या स्तंभों के सेट के लिए विशिष्टता सुनिश्चित करती हैं।

प्राथमिक कुंजी बाधा में स्वचालित रूप से एक अद्वितीय बाधा शामिल होती है।

हालाँकि, एक तालिका में कई अद्वितीय बाधाएँ हो सकती हैं, लेकिन एक तालिका में केवल एक प्राथमिक कुंजी बाधा हो सकती है।

💡महत्वपूर्ण नोट:

अद्वितीय बाधा शून्य मानों की अनुमति देती है, लेकिन प्राथमिक कुंजी बाधा शून्य मानों की अनुमति नहीं देती है।

तालिका बनाने पर SQL अद्वितीय बाधा

"व्यक्ति" तालिका बनाते समय "आईडी" कॉलम पर एक अद्वितीय बाधा बनाने के लिए निम्नलिखित एसक्यूएल का उपयोग किया जाता है:

SQL Server / Oracle / MS Access:

CREATE TABLE Persons (
    ID int NOT NULL UNIQUE,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

MySQL:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    UNIQUE (ID)
);

नियंत्रण को UNIQUE नाम देना और इसे एकाधिक स्तंभों पर परिभाषित करना

अद्वितीय बाधा को नाम दें, एकाधिक स्तंभों पर अद्वितीय बाधा को परिभाषित करें, और निम्नलिखित SQL सिंटैक्स का उपयोग करें:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CONSTRAINT UC_Person UNIQUE (ID,LastName)
);

परिवर्तन तालिका पर SQL अद्वितीय बाधा

तालिका पहले ही बन जाने के बाद "आईडी" कॉलम पर एक अद्वितीय बाधा बनाने के लिए निम्नलिखित एसक्यूएल का उपयोग करें:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD UNIQUE (ID);

नियंत्रण को UNIQUE नाम देना और इसे एकाधिक स्तंभों पर परिभाषित करना

अद्वितीय बाधा को नाम दें, एकाधिक स्तंभों पर अद्वितीय बाधा को परिभाषित करें, और निम्नलिखित SQL सिंटैक्स का उपयोग करें:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT UC_Person UNIQUE (ID,LastName);

अद्वितीय बाधा को हटाना

अद्वितीय बाधा को दूर करने के लिए, निम्न SQL का उपयोग करें:

MySQL:

ALTER TABLE Persons
DROP INDEX UC_Person;

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT UC_Person;

UNIQUE vs PRIMARY KEY

UNIQUE Constraint

  • अनेक अद्वितीय बाधाएँ हो सकती हैं
  • शून्य मानों की अनुमति देता है
  • विशिष्टता सुनिश्चित करता है
  • संकुल सूचकांक नहीं

PRIMARY KEY

  • केवल एक प्राथमिक कुंजी है
  • NULL मानों की अनुमति नहीं देता
  • विशिष्टता सुनिश्चित करता है
  • एक संकुल सूचकांक है

शैली के उदाहरण

ईमेल पते

प्रत्येक उपयोगकर्ता के लिए एक अद्वितीय ईमेल पता

CREATE TABLE Users (
    UserID int PRIMARY KEY,
    Email varchar(255) UNIQUE,
    UserName varchar(255)
);

उपयोगकर्ताओं के नाम

अद्वितीय उपयोक्तानाम

CREATE TABLE Users (
    UserID int PRIMARY KEY,
    Username varchar(50) UNIQUE NOT NULL,
    Password varchar(255)
);

उत्पाद कोड

अद्वितीय उत्पाद SKU कोड

CREATE TABLE Products (
    ProductID int PRIMARY KEY,
    SKU varchar(20) UNIQUE NOT NULL,
    ProductName varchar(255)
);

अभ्यास

SQL UNIQUE बाधा क्या सुनिश्चित करती है?

किसी कॉलम में NULL मान नहीं हो सकते
✗ ग़लत! यह NOT NULL बाधा का उद्देश्य है
एक कॉलम में सभी मान अद्वितीय हैं
✓ ठीक है! UNIQUE बाधा यह सुनिश्चित करती है कि किसी कॉलम में सभी मान अद्वितीय हैं
किसी कॉलम में हमेशा एक मान होना चाहिए
✗ ग़लत! यह NOT NULL बाधा का उद्देश्य है
कॉलम एक विदेशी कुंजी है
✗ ग़लत! अद्वितीय बाधा सीधे तौर पर विदेशी कुंजी से संबंधित नहीं है